package Entidad;

import java.io.Serializable;
import javax.persistence.*;

@Entity
@Table(
  name="USUARIO",
  uniqueConstraints=@UniqueConstraint(
    columnNames={"CORREO"},
    columnNames={"CODIGO"},
    columnNames={"CEDULA"}
  )
)
public class Usuario implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    private String correo;
    private String nombre;
    private char[] contrasena;
    private int codigo;
    private long cedula;
    private int fallas;

    public Usuario() {
    }

    public Usuario(String correo, String nombre, char[] contrasena, int codigo, long cedula) {
        this.correo = correo;
        this.nombre = nombre;
        this.contrasena = contrasena;
        this.codigo = codigo;
        this.cedula = cedula;
    }

    public Usuario(String correo, String nombre, char[] contrasena, int codigo, long cedula, int fallas) {
        this.correo = correo;
        this.nombre = nombre;
        this.contrasena = contrasena;
        this.codigo = codigo;
        this.cedula = cedula;
        this.fallas = fallas;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public String getCorreo() {
        return correo;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getNombre() {
        return nombre;
    }

    public void setContrasena(char[] contrasena) {
        this.contrasena = contrasena;
    }

    public char[] getContrasena() {
        return contrasena;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCedula(long cedula) {
        this.cedula = cedula;
    }

    public long getCedula() {
        return cedula;
    }

    public void setFallas(int fallas) {
        this.fallas = fallas;
    }

    public int getFallas() {
        return fallas;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 29 * hash + (this.correo != null ? this.correo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        if(!(object instanceof Usuario))
            return false;
        Usuario other=(Usuario)object;
        if((this.correo==null && other.correo!=null) || (this.correo!=null && !this.correo.equals(other.correo)))
            return false;
        return true;
    }

    @Override
    public String toString() {
        return codigo+" - "+nombre+"("+cedula+") - "+correo;
    }
    
}